package edebates.client;

import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.core.client.GWT;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.event.dom.client.KeyCodes;
import com.google.gwt.event.dom.client.KeyUpEvent;
import com.google.gwt.event.dom.client.KeyUpHandler;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.DialogBox;
import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.RootPanel;
import com.google.gwt.user.client.ui.TextArea;
import com.google.gwt.user.client.ui.TextBox;
import com.google.gwt.user.client.ui.VerticalPanel;
import java.util.ArrayList;

/**
 * Entry point classes define <code>onModuleLoad()</code>.
 */
public class Edebates implements EntryPoint {
	
	// private VerticalPanel mainPanel = new VerticalPanel(); // Определение виджета, который является контейнером для других виджетов
	private Label labelFieldContainer = new Label(); // Надпись для виджета с текстом
	private Label labelTypeFieldContainer = new Label(); // Надпись для виджета с редактором
	private TextArea textFieldContainer = new TextArea(); // Виджет для отображения набранного текста
	private TextArea textTypeFieldContainer = new TextArea(); // Виджет для набора текста
	private Button addButton = new Button("Отправить"); // Виджет кнопки для отправки
	private ArrayList<String> textArray = new ArrayList<String>();

	
	public void onModuleLoad() {
				
		// Свойства поля в котором будет отображаться текст
		labelFieldContainer.setText("Текст выступления: ");
		labelFieldContainer.setStyleName("label");
		textFieldContainer.setCharacterWidth(80);
		textFieldContainer.setVisibleLines(10);
		
		// Свойства поля в котором будет вводиться текст
		labelTypeFieldContainer.setText("Напечатайте текст здесь: ");
		labelTypeFieldContainer.setStyleName("label");
		textTypeFieldContainer.setCharacterWidth(80);
		textTypeFieldContainer.setVisibleLines(10);
		
		// Вариант, когда все виджеты скидываются в другой виджет, который
		// автоматически размещает их вертикально -- VerticalPanel
		// Данный варинт решил не применять из-за сложности с вёрсткой UI.
		// mainPanel.add(textFieldContainer);
		// mainPanel.add(textTypeFieldContainer);
		// mainPanel.add(addButton);
		// RootPanel.get("mainPanel").add(mainPanel);
		 
		 
		// Определение каждого виджета в свой контейнер
		RootPanel.get("textFieldContainer").add(labelFieldContainer);
		RootPanel.get("textFieldContainer").add(textFieldContainer);
		
		RootPanel.get("textTypeFieldContainer").add(labelTypeFieldContainer);
		RootPanel.get("textTypeFieldContainer").add(textTypeFieldContainer);
		RootPanel.get("sendButtonContainer").add(addButton);
		
		//Установка фокуса на поле для ввода.
		textTypeFieldContainer.setFocus(true);
		
		addButton.addClickHandler(new ClickHandler() {
			public void onClick(ClickEvent event) {
				sendText();
			}
		});
	}
	
	private void sendText() {
		final String symbol = textTypeFieldContainer.getText();
		textArray.add(symbol);
		textFieldContainer.setText(symbol);
		textTypeFieldContainer.setText("");
		
	}
}
